/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Print;

//Impresión en Java2 mediante FileOutputStream
import java.awt.print.*;
import java.util.*;
import java.io.*;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;

//La clase debe de implementar la impresión implements Printable
//clase pública que se ejecuta donde debe de estar el main que 
// llama a laotra clase.
public class ImprimeTexto {

    public static void main(String[] args) {


//Cogemos el servicio de impresión por defecto (impresora por defecto)
        PrintService service = PrintServiceLookup.lookupDefaultPrintService();
//Le decimos el tipo de datos que vamos a enviar a la impresora
//Tipo: bytes Subtipo: autodetectado
        DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
//Creamos un trabajo de impresión
        DocPrintJob pj = service.createPrintJob();
//Nuestro trabajo de impresión envía una cadena de texto
        @SuppressWarnings("RedundantStringConstructorCall")
        String ss = new String("Aquí lo que vamos a imprimir.");
        byte[] bytes;
//Transformamos el texto a bytes que es lo que soporta la impresora
        bytes = ss.getBytes();
//Creamos un documento (Como si fuese una hoja de Word para imprimir)
        Doc doc = new SimpleDoc(bytes, flavor, null);

//Obligado coger la excepción PrintException
        try {
            //Mandamos a impremir el documento
            pj.print(doc, null);
        } catch (PrintException e) {
            System.out.println("Error al imprimir: " + e.getMessage());
        }

    }
}
